package com.gadgets.busi.bm02.fegin;

import com.gadgets.busi.bm02.dto.DemendsResultDTO;
import com.gadgets.busi.bm02.dto.SumDemendsResultDTO;
import com.gadgets.busi.bm02.pojo.MaterialDict;
import com.gadgets.framework.common.dto.HttpBaseResp;
import com.gadgets.framework.common.exception.GadgetsServiceException;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import java.io.IOException;
import java.math.BigDecimal;
import java.util.Map;

/**
 * 功能说明：
 *
 * @author Unclexiu
 * @version V202101.00.000
 * @data 2022-09-15
 * 修改记录：  修改日期          修改人员    修改说明
 * 2022-09-15  xiujunqing   创建文件
 */
@SuppressWarnings("rawtypes")
@FeignClient(value = "gadgets-config-framework", contextId = "mcMeterialController")
public interface IMcMeterialController {

	/**
	 * 新增配方表
	 * @throws GadgetsServiceException      异常信息
	 */
	@RequestMapping(method = {org.springframework.web.bind.annotation.RequestMethod.POST},value = "/mcgame/addRecipe.do")
	void addRecipeInfo(@RequestParam Map map) throws GadgetsServiceException;

	/**
	 * 新增配方表
	 * @throws GadgetsServiceException      异常信息
	 */
	@RequestMapping(method = {org.springframework.web.bind.annotation.RequestMethod.POST},value = "/mcgame/editRecipe.do")
	void editRecipeInfo(@RequestParam Map map) throws GadgetsServiceException;

	/**
	 * 查询物品列表
	 * @return                              查询结果
	 * @throws GadgetsServiceException      异常信息
	 */
	@RequestMapping(method = {org.springframework.web.bind.annotation.RequestMethod.POST},value = "/mcgame/dictQuery.do")
	HttpBaseResp<MaterialDict> queryDictList(@RequestParam Map map) throws GadgetsServiceException;

	/**
	 * 查询多个物品的联合合成表
	 * @return                              查询结果
	 * @throws GadgetsServiceException      异常信息
	 */
	@RequestMapping(method = {org.springframework.web.bind.annotation.RequestMethod.POST},value = "/mcgame/meterialCountMulti.do")
	SumDemendsResultDTO multiCountQuery(@RequestParam Map map) throws GadgetsServiceException;

	/**
	 * 物品合成需求查询
	 * @return                              查询结果
	 * @throws GadgetsServiceException      异常信息
	 */
	@RequestMapping(method = {org.springframework.web.bind.annotation.RequestMethod.POST},value = "/mcgame/meterialCount.do")
	DemendsResultDTO meterialCountQuery(@RequestParam Map map) throws GadgetsServiceException;

	/**
	 * 合成表Excel导出
	 * @return                              Excel文件流
	 * @throws GadgetsServiceException      异常信息
	 */
	@RequestMapping(method = {org.springframework.web.bind.annotation.RequestMethod.POST},value = "/mcgame/meterialExcel.do")
	HttpBaseResp excelExport(@RequestParam Map map) throws GadgetsServiceException, IOException;

	/**
	 * 合成表Excel导出
	 * @return                              Excel文件流
	 * @throws GadgetsServiceException      异常信息
	 */
	@RequestMapping(method = {org.springframework.web.bind.annotation.RequestMethod.POST},value = "/mcgame/meterialExcelMulti.do")
	HttpBaseResp excelExportMulti(@RequestParam Map map) throws GadgetsServiceException, IOException;

	/**
	 * 新增物品信息
	 * @return                              新增结果
	 * @throws GadgetsServiceException      异常信息
	 */
	@RequestMapping(method = {org.springframework.web.bind.annotation.RequestMethod.POST},value = "/mcgame/addMaterial.do")
	HttpBaseResp<Object> addMaterialInfo(@RequestParam Map map) throws GadgetsServiceException;

	/**
	 * 数据导出
	 * @return                              物品信息
	 * @throws GadgetsServiceException      异常信息
	 */
	@RequestMapping(method = {org.springframework.web.bind.annotation.RequestMethod.POST},value = "/mcgame/dataExpot.do")
	HttpBaseResp<Object> dataExport() throws GadgetsServiceException;

	/**
	 * 生产时间计算
	 * @return                          耗时
	 * @throws GadgetsServiceException  异常信息
	 */
	@RequestMapping(method = {org.springframework.web.bind.annotation.RequestMethod.POST},value = "/mcgame/timeCalculate.do")
	BigDecimal productTimeCalculate(@RequestParam Map map) throws GadgetsServiceException;

	/**
	 * 全量更新物品拼音
	 * @throws GadgetsServiceException  异常信息
	 */
	@RequestMapping(method = {org.springframework.web.bind.annotation.RequestMethod.POST},value = "/mcgame/pinyinGen.do")
	void dictPinYinGenerator() throws GadgetsServiceException;

}
